/*
 * Copyright 2002-2019 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.springframework.transaction;

/**
 * Marker interface for Spring transaction manager implementations,
 * either traditional or reactive.
 *
 * @author Juergen Hoeller
 * @since 5.2
 * @see PlatformTransactionManager
 * @see ReactiveTransactionManager
 */
/*
1. 总结
TransactionManager 是 Spring 框架中用于管理事务的顶层接口。
它定义了事务管理的基本契约，是所有事务管理器实现类的父接口。
该接口分为两个主要分支：传统的 PlatformTransactionManager 和响应式编程的 ReactiveTransactionManager。
2. 内部成员说明
TransactionManager 接口本身是一个标记接口（marker interface），不包含任何方法。它的作用是作为类型标识，表明一个对象具备事务管理能力。
3. 类关系结构
	TransactionManager (interface)	 顶层标记接口，表示Spring事务管理器的基本契约
	├── PlatformTransactionManager (interface)	用于传统同步编程模型的事务管理，支持 JDBC、JPA、Hibernate 等数据访问技术。
	│   ├── AbstractPlatformTransactionManager (abstract class)	平台事务管理器的抽象基类，提供通用的事务管理逻辑实现
	│   │   ├── DataSourceTransactionManager (class)	基于 JDBC 数据源的事务管理器，适用于简单的数据库操作。
	│   │   │    └── JdbcTransactionManager (class)	基于 JDBC 的事务管理器，用于管理基于 JDBC 数据源的事务操作，适用于传统的数据库访问场景。
	│   │   ├── JpaTransactionManager (class)	基于 JPA 的事务管理器，支持分布式事务，适用于企业级应用
	│   │   ├── HibernateTransactionManager (class)	基于 Hibernate 框架的事务管理器，用于管理 Hibernate Session 的事务，支持 Hibernate 的持久化操作。
	│   │   ├── JmsTransactionManager (class)	 基于 JMS (Java Message Service) 的事务管理器，用于管理 JMS 消息事务，支持消息队列的事务操作。
	│   │   ├── JtaTransactionManager (class)	基于 JTA 的事务管理器，支持分布式事务，适用于企业级应用。
	│   │   │    ├── WebLogicJtaTransactionManager (class)
	│   │   │    └── WebSphereUowTransactionManager (class)
	│   │   └── CallCountingTransactionManager (class)	回调优先的平台事务管理器接口
	│   │       ├── NoSynchTransactionManager (class)
	│   │       └── SynchTransactionManager (class)
	│   ├── CallbackPreferringPlatformTransactionManager (interface)
	│   │   └── MockCallbackPreferringTransactionManager (class)
	│   ├── ResourceTransactionManager (interface)	资源事务管理器接口
	│   └── PlatformTransactionManagerFacade (class)	平台事务管理器门面类
	└── ReactiveTransactionManager (interface)	用于响应式编程模型的事务管理，支持 Reactor、R2DBC 等响应式框架。
		└── AbstractReactiveTransactionManager (abstract class)
		    ├── ReactiveCallCountingTransactionManager (class)
		    └── R2dbcTransactionManager (class)


相关类和接口区别说明
PlatformTransactionManager：用于传统同步编程模型的事务管理，支持 JDBC、JPA、Hibernate 等数据访问技术。
ReactiveTransactionManager：用于响应式编程模型的事务管理，支持 Reactor、R2DBC 等响应式框架。
DataSourceTransactionManager：基于 JDBC 数据源的事务管理器，适用于简单的数据库操作。
JpaTransactionManager：基于 JPA 的事务管理器，适用于复杂的实体关系管理。
JtaTransactionManager：基于 JTA 的事务管理器，支持分布式事务，适用于企业级应用。
 */
public interface TransactionManager {

}
